let tableIns;
let tree;
layui.use(['table','form', 'layer', 'laydate', 'tree', 'util'], function () {
    let table = layui.table;
    let form = layui.form;//select、单选、复选等依赖form
    let element = layui.element; //导航的hover效果、二级菜单等功能，需要依赖element模块
    let laydate = layui.laydate;
    tree = layui.tree;

    let height = document.documentElement.clientHeight - 60;

    tableIns = table.render({
        elem: '#serviceTable'
        , url: '/service/ref/reflist/page'
        , method: 'POST'
        //请求前参数处理
        , request: {
            pageName: 'page' //页码的参数名称，默认：page
            , limitName: 'rows' //每页数据量的参数名，默认：limit
        }
        , response: {
            statusName: 'flag' //规定数据状态的字段名称，默认：code
            , statusCode: true //规定成功的状态码，默认：0
            , msgName: 'msg' //规定状态信息的字段名称，默认：msg
            , countName: 'records' //规定数据总数的字段名称，默认：count
            , dataName: 'rows' //规定数据列表的字段名称，默认：data
        }
        //响应后数据处理
        , parseData: function (res) { //res 即为原始返回的数据
            var data = res.data;
            return {
                "flag": res.flag, //解析接口状态
                "msg": res.msg, //解析提示文本
                "records": data.records, //解析数据长度
                "rows": data.rows //解析数据列表
            };
        }
        , toolbar: '#serviceTableToolbar'
        , title: '商户列表'
        , cols: [[
            {field: 'serviceSellerRelationId', title: 'ID', hide: true}
            ,{field: 'sellerId', title: '商户商ID', hide: true}
            ,{field: 'serviceId', title: '服务商ID', hide: true}
            , {field: 'sellerName', width:150,title: '商户名称'}
            , {field: 'serviceName',title: '服务商名字'}
            , {field: 'serviceCom',title: '服务商抬头信息',templet:function (d) {
                    var _h = '<span>服务商公司名称：'+d.serviceCom+'</span><br>'+
                        '<span>组织机构代码：'+d.serviceOrg+'</span><br>';
                    return _h;
                }}
            , {field: 'serviceLegal',title: '服务商联系方式',templet:function (d) {
                    var _h = '<span>法人姓名：'+d.serviceLegal+'</span><br>'+
                        '<span>注册手机：'+d.servicePhone+'</span><br>'+
                    '<span>注册地址：'+d.serviceAddress+'</span><br>';
                    return _h;
                }}
            , {field: 'serviceBank',title: '服务商银行信息',templet:function (d) {
                    var _h = '<span>开户行名：'+d.serviceBank+'</span><br>'+
                        '<span>银行账号：'+d.serviceAccount+'</span><br>';
                    return _h;
                }}
            , {fixed: 'right', width:160, title: '操作', toolbar: '#serviceTableBar'}
        ]]
        , defaultToolbar: ['', '', '']
        , page: true
        , height: height
        , cellMinWidth: 80
    });

    //头工具栏事件
    table.on('toolbar(display)', function (obj) {
        switch (obj.event) {
            case 'addData':
                layer.open({
                    type: 2,
                    title: '关联服务商',
                    closeBtn: 1, //显示关闭按钮
                    anim: 2,
                    area: ['800px', '450px'],
                    shadeClose: true, //开启遮罩关闭
                    content: '/service/ref/refinsert'
                });
                break;
                /*
            case 'query':
                let queryBySellerName = $("#queryBySellerName").val();
                let query = {
                    page: {
                        curr: 1 //重新从第 1 页开始
                    }
                    , done: function (res, curr, count) {
                        //完成后重置where，解决下一次请求携带旧数据
                        this.where = {};
                    }
                };
                if (queryBySellerName) {
                    //设定异步数据接口的额外参数
                    query.where = {sellerName: queryBySellerName};
                }
                tableIns.reload(query);
                $("#queryBySellerName").val(queryBySellerName);
                break;

                 */
        }
    });

    //监听行工具事件
    table.on('tool(display)', function (obj) {
        let data = obj.data;
        //删除解绑
        if (obj.event === 'del') {
            layer.confirm('确认解绑服务商吗？', function (index) {
                //向服务端发送删除指令
                $.post("/service/ref/operation",
                    {serviceSellerRelationId:data.serviceSellerRelationId,refState:'D'}, function (data) {
                        console.log('del--v',data)
                        //$("#queryBySellerNameBtn").click();
                        obj.del();
                        layer.close(index);
                        location.reload();
                    })
            });
        }
        //编辑
       /* else if (obj.event === 'edit') {
            layer.open({
                type: 2,
                title: '编辑商户',
                closeBtn: 1, //显示关闭按钮
                anim: 2,
                area: ['800px', '450px'],
                shadeClose: true, //开启遮罩关闭
                content: '/service/serviceinserts',
                success: function(layero, index){
                    console.log("data---v",data);

                    var frameId = $(layero).find('iframe').attr("id");
                    //找到子页面的document对象
                    var document = window.frames[frameId].document;
                    //根据id找到子页面中相应的元素并赋值
                    $(document).find("input[name='serviceId']").val(data.serviceId);

                }
            });
        }

        */
    });

});

//定义serializeObject方法，序列化表单
$.fn.serializeObject = function() {
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name]) {
            if (!o[this.name].push) {
                o[this.name] = [ o[this.name] ];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};

/**
 * 提交保存
 */
function serviceFormSave() {
    let serviceForm = $("#serviceForm").serializeObject();
    
    var reg = /^1\d{10}$/;
    if(!reg.test(serviceForm.servicePhone)){
        layer.msg('请输入正确的手机号',{icon: 5});
        return false;
    }
    save();
}

function save(){
   /* let _phoneId = $("input[name='sellerMobile']").val();
    $("input[name='loginId']").val(_phoneId);
    $("input[name='loginName']").val(_phoneId);

    */

    let serviceId =  $("input[name='serviceId']").val();
    let serviceForm = {};
    if(serviceId == ""){ //  新增
        serviceForm = $("#serviceForm").serializeObject();
    }else { // 编辑
        serviceForm = $.param({serviceId:serviceId}) + "&" + $("#serviceForm").serialize() + "";
    }
    $.post("/service/saveService", serviceForm, function (data) {

        console.log('save--data--vv',data);

        if(data.flag){
            layer.msg("保存成功", {icon: 1, time: 2000}, function(){

                var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
                parent.layer.close(index); //再执行关闭
                parent.location.reload();
                /*
                var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
                parent.layer.close(index); //再执行关闭
                window.parent.$("#queryBySellerNameBtn").click();

                 */
            });
        } else {
            layer.msg("保存失败!", {icon: 5});
        }
    });
}